﻿using Enferno.Public.Web.ViewModels;

namespace Enferno.Public.Web.Components.Server.ViewModels
{
    public interface ICheckoutPayerViewModel
    {
        int? CustomerId { get; set; }
        AddressViewModel InvoiceAddress { get; set; }
    }

    public abstract class CheckoutPayerViewModel : BaseViewModel, ICheckoutPayerViewModel
    {
        protected CheckoutPayerViewModel()
        {
            TypeName = GetType().Name;
        }

        public int? CustomerId { get; set; }
        public AddressViewModel InvoiceAddress { get; set; }
        public string TypeName { get; private set; }
    }

    public class CheckoutCompanyPayerViewModel : CheckoutPayerViewModel
    {
        public int? CompanyId { get; set; }
        public string CompanyCode { get; set; }
        public string OrganisationNumber { get; set; }
        public CompanyInformationViewModel CompanyInformation { get; set; }
    }

    public class CheckoutPrivatePayerViewModel : CheckoutPayerViewModel
    {
        public string SocialSecurityNumber { get; set; }
        public PersonInformationViewModel PersonInformation { get; set; }
    }
}
